package daohibernate;
import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;

import negocio.beans.central.CondicionVenta;
import negocio.beans.central.Ganancia;
import hibernate.HibernateUtil;

public class CondicionVentaDAO {

	private static CondicionVentaDAO instancia;
	private static SessionFactory sf = null;
	
	public static CondicionVentaDAO getInstancia(){
		if(instancia == null){
			sf = HibernateUtil.getSessionFactory();
			instancia = new CondicionVentaDAO();
		}
		return instancia;
	}
	
	public void setCondicionVenta(CondicionVenta v){
		Session session = null;
		try {
			session = sf.openSession();			
			session.beginTransaction();
			session.save(v);
			session.getTransaction().commit();
			session.flush();
			session.close();
		} catch (Exception e) {
			if(session != null){
				session.getTransaction().rollback();	
				session.flush();
				session.close();
			}			
		}
	}
	
	public CondicionVenta getCondicionVenta(){
		Session session = sf.openSession();
		session.beginTransaction();
		
		float contado = 0;
		float financiado = 0;
		
		List<Float> list = session.createQuery("select contado from CondicionVenta g where g.id = (select max(id) from CondicionVenta)").list();
		
		if(!list.isEmpty())
			contado = list.iterator().next();
		
		List<Float> list2 = session.createQuery("select financiado from CondicionVenta g where g.id = (select max(id) from CondicionVenta)").list();
		
		if(!list.isEmpty())
			financiado = list2.iterator().next();
		
		session.flush();
		session.getTransaction().commit();
		session.close();
		return new CondicionVenta(contado, financiado);
	}
	
}
